/*
 * Copyright (c) 2023 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef MAPLEBE_MDGEN_INCLUDE_MDTOKENS_H
#define MAPLEBE_MDGEN_INCLUDE_MDTOKENS_H
enum MDTokenKind {
    /* special symbols */
    kMDError,
    kMDEOF,
    kMDInvalid,

    /* normal symbols */
    kMDOpenParen,   /* ( */
    kMDCloseParen,  /* ) */
    kMDOpenBrace,   /* { */
    kMDCloseBrace,  /* } */
    kMDOpenSquare,  /* [ */
    kMDCloseSquare, /* ] */
    kMDEqual,       /* = */
    kMDSemi,        /* ; */
    kMDComma,       /* , */
    kMDColon,       /* : */
    kMDLess,        /* < */
    kMDGreater,     /* > */
    kMDLgAnd,       /* & */
    kMDLgOr,        /* | */

    kMDIdentifier,
    /* const values */
    kMDIntVal,
    kMDFloatVal,
    kMDDoubleVal,

    /* keywords */
    kMDDef,
    kMDClass,
    kMDAnonClass,
    kMDDefType,
};

#endif /* MAPLEBE_MDGEN_INCLUDE_MDTOKENS_H */